/***********************************************
 This file is part of redia-lib-utils-ios
.
 
 Copyright (c) 2012, 2013 Redia A/S
 
 Redia-library-app-ios is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 
 Redia-library-app-ios is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with redia-library-app-ios.  If not, see <http://www.gnu.org/licenses/>.
 
 *********************************************** */


#import <Foundation/Foundation.h>
#import "LazyLoadImage.h"

enum LazyLoadImageViewAnimation {
    FadeIn = 0,
    FlipLeft = 1,
    FlipRight = 2,
    FlipTop = 3,
    FlipBottom = 4,
    CurlDown = 5,
    CurlUp = 6
    };

@interface LazyLoadImageView : NSObject<UrlCacheEntryDelegate> {
	LazyLoadImage* lazyLoader;
	UIImageView* fImageView; //retained by property
	id<UrlCacheEntryDelegate> delegate; //retained explicitly
	float animationTime;
}

@property (nonatomic, strong) UIImageView* fImageView;
@property (nonatomic, assign) enum LazyLoadImageViewAnimation animationType;

+ (void)createLazyLoaderWithView:(UIImageView*)view url:(NSURL*)url animationTime:(NSTimeInterval)anim_time delegate:(id<UrlCacheEntryDelegate>)d;

+ (void)createLazyLoaderWithView:(UIImageView*)view url:(NSURL*)url animationType:(enum LazyLoadImageViewAnimation)animationType animationTime:(NSTimeInterval)anim_time delegate:(id<UrlCacheEntryDelegate>)d;

- (id)initWithView:(UIImageView*)view url:(NSURL*)url animationTime:(NSTimeInterval)anim_time delegate:(id<UrlCacheEntryDelegate>)d;

- (id)initWithView:(UIImageView*)view url:(NSURL*)url animationType:(enum LazyLoadImageViewAnimation)animationType animationTime:(NSTimeInterval)anim_time delegate:(id<UrlCacheEntryDelegate>)d;

- (void)unloadImage;

@end
